package request

import (
	hall "hall/models/request"
	"time"
)

type CreateRoomReq struct {
	hall.CommonID
	GameRule GameRule `json:"gameRule"` //规则
}
type GameRule struct {
	GameType               uint          `json:"gameType"`               //游戏类型
	BaseScore              int64         `json:"baseScore"`              //底注
	MaxPlayerCount         int           `json:"maxPlayerCount"`         //最大人数
	MinPlayerCount         int           `json:"minPlayerCount"`         //最小人数
	InitGold               int64         `json:"initGold"`               //初始金币
	InitBlood              int64         `json:"initBlood"`              //初始血量
	InitLevel              int64         `json:"initLevel"`              //初始等级
	LevelMax               int64         `json:"levelMax"`               //等级上限
	GoldMax                int64         `json:"goldMax"`                //金币上限
	EachLevelGoldRate      int64         `json:"eachLevelGoldRate"`      //每级所需金币倍数
	SiteCardMaxNum         int64         `json:"siteCardMaxNum"`         //场地卡牌上限
	HandCardMaxNum         int64         `json:"handCardMaxNum"`         //手牌卡牌上限
	RefreshCard            int64         `json:"refreshCard"`            //刷新卡牌数量
	RefreshGold            int64         `json:"refreshGold"`            //刷新消耗金币数
	BloodLossSub           int64         `json:"bloodLossSub"`           //掉血量(剩余卡牌数*回合*倍数)
	CardSecondHandPrice    float64       `json:"cardSecondHandPrice"`    //卡牌二手价(原价*比列)
	GameFee                float64       `json:"gameFee"`                //游戏手续费
	WaitReady              time.Duration `json:"waitReady"`              //等待准备时间
	SelectCardSleep        time.Duration `json:"selectCardSleep"`        //选卡时间
	OperateSleep           time.Duration `json:"operateSleep"`           //操作等待时间
	ChampionRate           float64       `json:"championRate"`           //冠军奖励比列
	RunnerRate             float64       `json:"runnerRate"`             //亚军奖励比列
	ThirdPlaceRate         float64       `json:"thirdPlaceRate"`         //季军奖励比列
	ConditionBuySkillLevel int64         `json:"conditionBuySkillLevel"` //购买技能条件等级
	StartTime              string        `json:"startTime"`              //开始时间
	EndTime                string        `json:"endTime"`                //结束时间
}

type GameFleeRule struct {
	KillRoomNumMin int   `json:"killRoomNumMin"` //最小杀死房间数
	KillRoomNumMax int   `json:"killRoomNumMax"` //最大杀死房间数
	KillManyRate   int64 `json:"killManyRate"`   //杀多个房间的概率
	CheckUserCount int64 `json:"checkUserCount"` //检测用户人数(加人机)
}

type GameType int

const (
	Card GameType = 1
	Flee GameType = 2
)
